package com.heima.controller;

import com.heima.common.PageResult;
import com.heima.pojo.dto.AddNodeDTO;
import com.heima.pojo.dto.NodeDTO;
import com.heima.pojo.dto.NodePageSearchQueryDTO;
import com.heima.pojo.vo.BusinessTypeVO;
import com.heima.pojo.vo.NodePageSearchQueryVO;
import com.heima.pojo.vo.NodeVO;
import com.heima.pojo.vo.PageSearchQueryVO;
import com.heima.service.NodeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Api(tags = "点位接口")
@RestController
@RequestMapping("/api/vm-service")
public class NodeControllre {
    @Autowired
    NodeService nodeService;

    /**
     * 点位搜索
     **/
    @GetMapping("/node/search")
    @ApiOperation("点位搜索")
    public PageResult<NodePageSearchQueryVO> pageSearch(NodePageSearchQueryDTO dto) {
        return nodeService.pageSearch(dto);
    }

    /**
     * 新增点位
     * 接口一，查询商圈列表
     **/
    @ApiOperation("查询商圈列表")
    @GetMapping("/businessType")
    public List<BusinessTypeVO> selectType() {
        List<BusinessTypeVO> list = nodeService.selectType();
        return list;
    }

    /**
     * 新增点位
     **/
    @ApiOperation("新增点位")
    @PostMapping("/node")
    public Boolean addNode(@RequestBody NodeDTO dto) {
        nodeService.add(dto);
        return true;
    }
    /**
     * 获取点位详细
     * **/
    @ApiOperation("获取点位详细")
    @GetMapping("/node/vmList/{nodeId}")
    public List<NodeVO> list(@PathVariable("nodeId") Long nodeId){
        List<NodeVO> list  = nodeService.list(nodeId);
        return list;
    }
    /**
     * 删除点位
     * **/
    @ApiOperation("删除点位")
    @DeleteMapping("/node/{nodeId}")
    public Boolean deleteById (@PathVariable("nodeId") Long nodeId){
        nodeService.deleteById(nodeId);
        return true;
    }
    /**
     * 修改点位
     * **/
    @ApiOperation("修改点位")
    @PutMapping("/node/{nodeId}")
    public Boolean updateNode(@RequestBody AddNodeDTO dto,@PathVariable("nodeId") Long  nodeId){
        nodeService.updateNode(dto,nodeId);
        return true;
    }
}